<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>


	<table>
		<tr>
			<td bgcolor="#000080" colspan="2"><b><font color="#FFFFFF">Example 3 
			- Clicking and Scrolling</font></b></td>
		</tr>
		<tr>
			<td valign="top">
			<p>&nbsp;</p>
			<p>In this example, a Button is used to create CheckBoxes inside a ScrollPane.</p>
			<p>The button and scrollpane are placed absolutely inside the contents 
			figure by simply setting their bounds; no layout manager is used there.&nbsp; 
			However, the
			<u onmouseout="view.style.border =&quot;&quot;;view.style.background=&quot;#FFFFFF&quot;" onmouseover="view.style.border =&quot;1px solid #000080&quot;;view.style.background=&quot;#BBBBFF&quot;">
			view</u> must have a Layout, or its preferred size will not get calculated, 
			and scrolling will not work correctly.</p>
			<p>The button&#39;s action listener will get called each time the user clicks 
			on the button.&nbsp; The
			<u onmouseout="listener.style.border =&quot;&quot;;listener.style.background=&quot;#FFFFFF&quot;" onmouseover="listener.style.border =&quot;1px solid #000080&quot;;listener.style.background=&quot;#BBBBFF&quot;">
			listener</u> will create a new CheckBox and add it to the view.  A vertical scrollbar will appear when the checkboxes cannot all be displayed at once in the pane.</p>
			</td>
			<td><img border="0" src="demo3.gif" width="263" height="330"></td>
		</tr>
	</table>
	<table>
		<tr>
			<td valign="top">
			<pre>01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
</pre></td>
<td valign="top">
<pre><font color="#000084">import</font> org.eclipse.swt.widgets.Shell;
<font color="#000084">import</font> org.eclipse.swt.widgets.Display;
<font color="#000084">import</font> org.eclipse.draw2d.*;
<font color="#000084">import</font> org.eclipse.swt.SWT;
<font color="#000084">import</font> org.eclipse.draw2d.geometry.*;

<font color="#000084">public</font> <font color="#000084">class</font> Demo3 {

<font color="#000084">static int</font> count = 1;

<font color="#000084">public static void</font> main(String args[]){
	Shell shell = <font color="#000084">new</font> Shell();
	shell.setSize(350,350);
	shell.open();
	shell.setText(<font color="#008484">&quot;Demo 3&quot;</font>);
	LightweightSystem lws = <font color="#000084">new</font> LightweightSystem(shell);
	IFigure panel = <font color="#000084">new</font> Figure();
	lws.setContents(panel);
	ScrollPane scrollpane = <font color="#000084">new</font> ScrollPane();
	scrollpane.setBounds(<font color="#000084">new</font> Rectangle(30,30,210,200));
	scrollpane.getViewport().setBorder(<font color="#000084">new</font> GroupBoxBorder(<font color="#008484">&quot;Viewport&quot;</font>));
	scrollpane.setBorder(<font color="#000084">new</font> GroupBoxBorder(<font color="#008484">&quot;ScrollPane&quot;</font>));
	<div id="view">	<font color="#000084">final</font> Figure view = <font color="#000084">new</font> Figure();
	view.setBorder(<font color="#000084">new</font> GroupBoxBorder(<font color="#008484">&quot;The View&quot;</font>));
	view.setLayoutManager(<font color="#000084">new</font> FlowLayout(FlowLayout.VERTICAL));
	scrollpane.setView(view);</div>
	Clickable button = <font color="#000084">new</font> Button(<font color="#008484">&quot;Create checkbox&quot;</font>);
	button.setBounds(<font color="#000084">new</font> Rectangle(30,250,140,35));
	<div id="listener">	button.addActionListener(<font color="#000084">new</font> ActionListener(){
		<font color="#000084">public void</font> actionPerformed(ActionEvent e){
			view.add(<font color="#000084">new</font> CheckBox(<font color="#008484">&quot;Checkbox &quot;</font>+count++));
		}
	});</div>
	panel.add(button);
	panel.add(scrollpane);
	
	Display display = Display.getDefault();
	<font color="#000084">while</font> (!shell.isDisposed()) {
		<font color="#000084">if</font> (!display.readAndDispatch())
			display.sleep ();
		}
	}
}</pre></td></tr></table>